package initialize

import (
	"github.com/fsnotify/fsnotify"
	"github.com/spf13/viper"
	"go.uber.org/zap"
	"jms/global"
	"os"
)

func InitConfig() {
	getenv := os.Getenv("Debug")
	v := viper.New()
	v.SetConfigFile("config-product.yaml")
	if getenv == "true" {
		v.SetConfigFile("config.yaml")
	}
	if err := v.ReadInConfig(); err != nil {
		panic(err)
	}

	if err := v.Unmarshal(&global.ServerConfig); err != nil {
		panic(err)
	}
	zap.S().Info("初始化配置")
	//viper的功能 - 动态监控变化
	v.WatchConfig()
	v.OnConfigChange(func(e fsnotify.Event) {
		_ = v.ReadInConfig()
		_ = v.Unmarshal(global.ServerConfig)
		zap.S().Info("配置文件修改了")
	})
}
